Le tuple in Julia sono raccolte ordinate di lunghezza fissa progettate per garantire l'integrità dei dati impedendo modifiche accidentali allo stato. Un array è rappresentato da parentesi quadre mentre una tupla è rappresentata da parentesi tonde e virgole, come si vede nella definizione tup1=(5,10,15,20,25,30).
1. Proprietà fondamentali
Simile a un array, una tupla è anche un insieme ordinato di elementi. Ciò permette l'estrazione basata su intervalli, come tup1[3:end] per restituire un sottoinsieme dei dati originali. Le tuple sono inoltre molto flessibili, consentendo incastri strutturali. Se tup1 = ((1,2),(3,4)), possiamo recuperare il primo gruppo con tup1[1] oppure accedere al secondo livello tramite tup1[1][2].
2. Il contratto di immutabilità
La differenza più importante è che le tuple sono immutabili. Una volta istanziata, il loro contenuto non può essere modificato. Eseguendo un'operazione come tup1[2]=0 risulterà in un errore MethodError, effettivamente "bloccando" i dati.
3. Ottimizzazione
Poiché le tuple sono immutabili, il compilatore di Julia può spesso ottimizzare il loro stoccaggio in memoria, rendendole significativamente più veloci degli array per gruppi di dati piccoli e di dimensione fissa.